package entity

type Pay struct {
	MerCustId       string `json:"mer_cust_id"`       // 商户客户号
	Version         int64  `json:"version"`           // 固定10
	OrderDate       string `json:"order_date"`        // 订单日期
	OrderId         string `json:"order_id"`          // 订单编号
	UserCustId      string `json:"user_cust_id"`      // 用户客户号
	AcctId          string `json:"acct_id"`           // 账户号
	UserName        string `json:"user_name"`         // 用户姓名
	MarketType      string `json:"market_type"`       // 应用市场
	AcctUsageType   string `json:"acct_usage_type"`   // buyers_wallet：买家钱包户 wallet：买卖钱包户
	UserId          string `json:"user_id"`           // 用户ID
	IdCardType      int    `json:"id_card_type"`      // 用户证件类型
	IdCard          string `json:"id_card"`           // 用户证件号
	OrgOrderId      string `json:"org_order_id"`      // 原订单号(分账使用)
	OrgOrderDate    string `json:"org_order_date"`    // 原订单日期(分账使用)
	OrgTransType    string `json:"org_trans_type"`    // 原交易类型(分账使用)
	UserMobile      string `json:"user_mobile"`       // 手机号
	TransType       string `json:"trans_type"`        // 交易类型
	DivType         int64  `json:"div_type"`          // 延时分账=1；实时分账=0
	DivDetails      string `json:"div_details"`       // 分账账户串
	TransAmt        string `json:"trans_amt"`         // 交易金额
	OrderExpireTime string `json:"order_expire_time"` // 订单超时时间
	BgRetUrl        string `json:"bg_ret_url"`        // 后台返回地址
	MerPriv         string `json:"mer_priv"`          // 商户私有域
	Extension       string `json:"extension"`         // 扩展域
	GoodsDesc       string `json:"goods_desc"`        // 商品描述
	DevInfoJson     string `json:"dev_info_json"`     // 设备信息
	ObjectInfo      string `json:"object_info"`       // 藏品信息
	CommonSign
	CommonUrl
}

type DevInfoJson struct {
	DevType int    `json:"devType"` // 设备类型 1-电脑；2-手机。
	IpAddr  string `json:"ipAddr"`  // IP地址
	MAC     string // MAC:F0E1D2C3B4A5
	IMEI    string // IMEI
}
type DivDetails struct {
	DivCustId   string `json:"divCustId"`   // 分账客户号
	DivAcctId   string `json:"divAcctId"`   // 分账账户号
	DivAmt      string `json:"divAmt"`      // 分账金额
	RiskDivType int64  `json:"riskDivType"` // 风控分账用途
}

type ObjectInfo struct {
	MarketType int64 `json:"marketType"` // 藏品交易市场类型
}

// ReturnResSynchronous 同步返回参数
type ReturnResSynchronous struct {
	RespCode     string               `json:"resp_code" form:"resp_code"`       // 应答返回码
	RespDesc     string               `json:"resp_desc" form:"resp_desc"`       // 应答返回描述
	MerCustId    string               `json:"mer_cust_id" form:"mer_cust_id"`   // 商户客户号
	OrderId      string               `json:"order_id" form:"order_id"`         // 订单号
	OrderDate    string               `json:"order_date" form:"order_date"`     // 订单日期
	TransAmt     string               `json:"trans_amt" form:"trans_amt"`       // 订单金额
	UserCustId   string               `json:"user_cust_id" form:"user_cust_id"` // 用户客户号
	UserName     string               `json:"user_name" form:"user_name"`       // 用户姓名
	MerPriv      string               `json:"mer_priv" form:"mer_priv"`         // 商户私有域
	Uuid         string               `json:"uuid" form:"uuid"`                 // 会话ID
	PayUrl       string               `json:"pay_url" form:"pay_url"`           // 跳转收银台地址
	RedirectUrl  string               `json:"redirect_url" form:"redirect_url"` // 跳转钱包开通地址
	AcctInfoList []ReturnAcctInfoList `json:"acct_info_list"`
}

// ReturnAcctInfoList 返回的账号信息
type ReturnAcctInfoList struct {
	AcctId        string `json:"acct_Id" form:"acct_Id"`
	AcctName      string `json:"acct_name" form:"acct_name"`
	AcctUsageType string `json:"acct_usage_type" form:"acct_usage_type"`
	UserMobile    string `json:"user_mobile" form:"user_mobile"`
	MarketType    string `json:"market_type" form:"market_type"`
	NftFeeRecType string `json:"nft_fee_rec_type" form:"nft_fee_rec_type"`
	StatFlag      string `json:"stat_flag" form:"stat_flag"` //0：注销 1：正常
}

// ReturnResAsynchronous 异步返回参数
type ReturnResAsynchronous struct {
	RespCode      string  `json:"resp_code" form:"resp_code"`             // 应答返回码
	RespDesc      string  `json:"resp_desc" form:"resp_desc"`             // 应答返回描述
	MerCustId     string  `json:"mer_cust_id" form:"mer_cust_id"`         // 商户客户号
	UserCustId    string  `json:"user_cust_id" form:"user_cust_id"`       // 用户客户号
	AcctId        string  `json:"acct_id" form:"acct_id"`                 // 账户号
	UserId        string  `json:"user_id" form:"user_id"`                 // 用户ID
	UserName      string  `json:"user_name" form:"user_name"`             // 账户姓名
	Balance       float64 `json:"balance" form:"balance"`                 // 可用余额
	RedirectUrl   string  `json:"redirect_url" form:"redirect_url"`       // 跳转钱包开通地址
	TransStat     string  `json:"trans_stat" form:"trans_stat"`           // 交易状态
	DivDetails    string  `json:"div_details" form:"div_details"`         // 分账账户串
	OrderId       string  `json:"order_id" form:"order_id"`               // 订单号
	OrderDate     string  `json:"order_date" form:"order_date"`           // 订单日期
	BankId        string  `json:"bank_id" form:"bank_id"`                 // 银行代号
	TransAmt      string  `json:"trans_amt" form:"trans_amt"`             // 订单金额
	FeeAcctId     string  `json:"fee_acct_id" form:"fee_acct_id"`         // 手续费账户号
	FeeCustId     string  `json:"fee_cust_id" form:"fee_cust_id"`         // 手续费客户号
	FeeAmt        string  `json:"fee_amt" form:"fee_amt"`                 // 手续费金额
	RetUrl        string  `json:"ret_url" form:"ret_url"`                 // 前台返回地址
	BgRetUrl      string  `json:"bg_ret_url" form:"bg_ret_url"`           // 后台返回地址
	MerPriv       string  `json:"mer_priv" form:"mer_priv"`               // 商户私有域
	Extension     string  `json:"extension" form:"extension"`             // 扩展域
	PlatformSeqId string  `json:"platform_seq_id" form:"platform_seq_id"` // 本平台交易唯一标识号
	OutTransId    string  `json:"out_trans_id" form:"out_trans_id"`       // 外部交易流水号
	PartyOrderId  string  `json:"party_order_id" form:"party_order_id"`   // 外部商家订单号
	PayType       string  `json:"pay_type" form:"pay_type"`               // 支付类型
	RealTransAmt  string  `json:"real_trans_amt" form:"real_trans_amt"`   // 可分账金额
}

type CommonUrl struct {
	Url string `form:"url" json:"url"`
}

type CommonReceive struct {
	Code int64  `json:"code" form:"code"`
	Msg  string `json:"msg" form:"msg"`
	Data any    `json:"data" form:"data"`
}

type CommonSign struct {
	Sign string `json:"sign"` // 签名
}

type Check struct {
	CheckValue string `json:"check_value" form:"check_value"`
}
